// 给定一个二叉树，判断它是否是高度平衡的二叉树。左右子树高度差小于等于1




// 自顶向下
/**
 * @param {TreeNode} root
 * @return {boolean}
 */
const depth = function (node) {
    if (node === null) return 0
    return 1 + Math.max(depth(node.left), depth(node.right))
}
var isBalanced = function (root) {
    if (root === null) return true
    const delta = Math.abs(depth(root.left) - depth(root.right))
    return delta <= 1 && isBalanced(root.left) && isBalanced(root.right)
};


// 自底向上